#ifndef _IHASMONSTER_H_
#define _IHASMONSTER_H_

#include "Monster.h"

/**
 * Interfaces that tells us if an object has a monster associated
 * to it.
 *
 * This means, that for example a mapObject as floor can have
 * a monster associated to it, which in turn means that the monster
 * is standing on that specefic piece of floor.
 */

class IHasMonster
{
public:
  /**
   * Sets a monster that will be associated to this object.
   *
   * @arg[in] m : Monster to be associated.
   */
  virtual void setMonster(Monster* m) = 0;

  /**
   * Get the monster associated to this object.
   *
   * @return The monster or 0 if no monster was associated.
   */
  virtual Monster* getMonster() = 0;
};

#endif /* _IHASMONSTER_H_ */

